package com.fzkj.shejimoshi.TemplatePattern;

/**
 * @DESCRIPTION: 豆浆抽象类，封装不变方法及不变的步骤
 * @AUTHOR: yanghuanxi
 * @DATE: 2023/1/12 16:06
 */
public abstract class AbstractMilk {

    /** 添加制作豆浆的原料 */
    protected abstract void add();

    /** 浸泡 */
    private void soak(){
        System.out.println("开始浸泡.");
    }

    /** 打豆浆 */
    private void beat(){
        System.out.println("开始打豆浆.");
    }

    /**
     * 制作豆浆
     * 模板方法
     */
    public final void make(){
        this.add();
        this.soak();
        this.beat();
    }
}
